package com.example.repository.mongo;

import com.example.model.Product;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.mongodb.repository.MongoRepository;
import org.springframework.stereotype.Repository;

import java.util.Date;
import java.util.List;

/**
 * 商品MongoDB仓库接口
 */
@Repository
public interface ProductMongoRepo extends MongoRepository<Product, String> {
    
    /**
     * 根据商品名称查找商品
     */
    List<Product> findByProductName(String productName);
    
    /**
     * 根据商品编号查找商品
     */
    Product findByProductCode(String productCode);
    
    /**
     * 根据价格范围查找商品
     */
    List<Product> findByPriceBetween(double minPrice, double maxPrice);
    
    /**
     * 根据生产日期范围查找商品
     */
    List<Product> findByProductionDateBetween(Date startDate, Date endDate);
    
    /**
     * 根据生产厂家查找商品
     */
    List<Product> findByManufacturer(String manufacturer);
    
    /**
     * 分页查询所有商品
     */
    @Override
    Page<Product> findAll(Pageable pageable);
}